The present invention relates generally to apparatus and methods for producing waveforms of musical tones, voices or other desired sounds on the basis of waveform data read out from a waveform memory or the like, and more particularly to an improved waveform producing apparatus and method capable of producing waveforms that faithfully represent tone color variations effected by a human player using various styles of rendition or various kinds of articulation unique to a particular natural musical instrument. It should be appreciated that the basic principles of the present invention can be applied extensively to various types of equipment, apparatus and methods having the function of generating musical tones, voices or any other desired sounds, such as automatic performance devices, computers, electronic game devices and multimedia-related devices, not to mention electronic musical instruments. Also, let it be assumed that the terms “tone waveform” used in this specification are not necessarily limited to a waveform of a musical tone alone and are used in a much broader sense that may embrace a waveform of a voice or any other desired type of sound.
The so-called “waveform memory readout” technique has already been well known and popularly used in the art, which prestores waveform data coded with a desired coding scheme, such as the PCM (Pulse Code Modulation), DPCM (Differential Pulse Code Modulation) or ADPCM (Adaptive Differential Pulse Code Modulation), and then reads out the thus-prestored waveform data at a rate corresponding to a desired tone pitch to thereby produce a tone waveform. So far, various types of “waveform memory readout” techniques have been proposed and known in the art, most of which are directed to producing a waveform covering from the start to end of a tone to be audibly reproduced or sounded. As one specific example of the waveform memory readout technique, there has been known a scheme of prestoring waveform data of a complete waveform of a tone covering from the start to end thereof. As another example of the waveform memory readout technique, there has been known a scheme of prestoring waveform data of a complete waveform only for each nonsteady state portion, such as an attach, release or joint portion, of a tone presenting relatively complex variations and prestoring a predetermined loop waveform for each steady state portion, such as a sustain portion, of the tone presenting much less variations. It should be noted that, in this patent specification, the terms “loop waveform” are used to refer to a waveform to be read out repeatedly, i.e., in a “looped” fashion.
With the conventional waveform memory readout scheme of prestoring waveform data of a complete waveform of a tone covering from the start to end thereof or prestoring waveform data of a complete waveform only for a particular portion, such as an attach portion, of a tone, however, it has been necessary to prestore a great number of various waveform data corresponding to a variety of styles of rendition (or various kinds of articulation), which would thus undesirably require a memory of an extremely large storage capacity if such a great number of various waveform data are to be stored in the memory as they are. To address this inconvenience, it has been conventional to divide an input waveform into a harmonic component (or periodic component) having periodic waveform components and a nonharmonic component (or nonperiodic component) having nonperiodic waveform components and then store waveform data of the thus-divided components in compressed form, so as to effectively save the memory storage capacity necessary for storing the waveform data. It has also been conventional to save the memory storage capacity necessary for the waveform data by using, for a plurality of tone pitches, same waveform data stored on the basis of an input waveform corresponding to a given tone pitch; specifically, in this case, the waveform data stored on the basis of the input waveform corresponding to a given tone pitch are used after having been shifted to a desired tone pitch.
However, if waveform synthesis is performed, using such waveform data divided into the harmonic and nonharmonic components, with phase differences caused between the harmonic and nonharmonic components, then there would be produced a low-quality waveform with tone color deterioration, undesired noise, etc. In such a case, it is impossible to faithfully express tone color variations effected using various styles of rendition (or various kinds of articulation) unique to a particular natural musical instrument. For example, in the case where waveform data stored in a memory of a limited storage capacity are used after a pitch shift operation (i.e., where the stored waveform data are read out in correspondence with a desired pitch), the conventionally-known waveform memory readout technique performs pitch shift control of the waveform data of the harmonic component alone and does not performs the pitch shift control of the waveform data of the nonharmonic component. With the pitch shift control thus performed only on the harmonic component's waveform data, waveform synthesis is likely to be performed with phase differences caused between the harmonic and nonharmonic components' waveform data. Besides, the conventionally-known waveform memory readout technique is not arranged to synthesize or combine together waveforms while synthesizing the respective phases of the harmonic and nonharmonic components' waveform data. Therefore, particularly in the case where a new waveform is to be produced using waveform data having been subjected to pitch shift control, the waveform tends to be produced with tone color deterioration, undesired noise, etc., and thus the conventional technique can not produce high-quality waveforms, corresponding to various styles of rendition (various kinds of articulation), in such a manner that the produced waveforms will be reproduced with good reproducibility.
Further, when waveform synthesis is to be performed by combining desired waveform blocks stored in a memory, the conventionally-known waveform memory readout technique interconnects the waveform blocks by cross-fade synthesis between respective loop waveform segments of the blocks. However, unless the respective loop waveform segments of the waveform blocks are in phase with each other, they would undesirably cancel each other so that the cross-fade synthesis between the loop waveform segments can not be performed appropriately. Thus, it has been customary to make appropriate phase adjustment such that the phases of the loop waveform segments of the two successive (preceding and succeeding) waveform blocks match each other. Depending on the phase adjustment made, the readout start timing of the harmonic component in the waveform blocks would be changed (delayed) by an amount corresponding to one cycle of the loop waveforms at the maximum, while the readout start timing of the corresponding nonharmonic component in the waveform blocks is left unchanged because no cross-fade synthesis is performed on the nonharmonic component. Thus, in such a case, the readout start timing of the harmonic and nonharmonic components in the waveform blocks does not appropriately coincide with each other, which results in a difference in synthesis timing between the harmonic component's waveform data and the nonharmonic component's waveform data.